package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description 商品信息
 */
public interface GoodsDao {


    String getMaxCode();
    // 分页查询商品库存信息
    Page<Goods> selectGoodsInfo(@Param("codeOrName") String codeOrName, @Param("goodsTypeId") Integer goodsTypeId);

    // 分页查询商品信息
    Page<Goods> selectGoods(@Param("goodsName") String goodsName, @Param("goodsTypeId") Integer goodsTypeId);

    // 添加商品信息
    void insertGoods(Goods goods);

    // 修改商品信息
    void updateGoods(Goods goods);

    //根据goodsId获取商品信息
    Goods selectGoodsById(Integer goodsId);

    // 根据goodsId删除商品信息
    void deleteGoodsById(Integer goodsId);

    // 获取无库存商品信息
    Page<Goods> selectNoInventoryGoods(String nameOrCode);

    // 获取有库存商品信息
    Page<Goods> selectHasInventoryGoods(String nameOrCode);

    // 添加商品期初库存
    void insertStock(@Param("goodsId") Integer goodsId, @Param("inventoryQuantity") Integer inventoryQuantity, @Param("purchasingPrice") double purchasingPrice);

    // 删除商品库存
    void deleteStockById(Integer goodsId);

}
